package routers

import (
	v1 "golang-microgrpc-sharemod/gateway-api/controllers/v1"
	v2 "golang-microgrpc-sharemod/gateway-api/controllers/v2"
	"golang-microgrpc-sharemod/gateway-api/middlewares"
	"golang-microgrpc-sharemod/gateway-api/utils"

	"github.com/gin-gonic/gin"
)

func ApiRouters(r *gin.Engine) {

	// 前端不区分版本接口之非权限路由
	unauthGroupRouter := r.Group("/api/frontend")
	{
		//base64Captcha
		unauthGroupRouter.GET("/captcha", func(ctx *gin.Context) {
			id, b64s, err := utils.MakeCaptcha()
			if err != nil {
				ctx.JSON(200, gin.H{
					"code": 400,
					"data": nil,
					"msg":  err.Error(),
				})
				return
			}

			ctx.JSON(200, gin.H{
				"code": 200,
				"data": map[string]interface{}{
					"captchaId":    id,
					"captchaImage": b64s,
				},
				"msg": "",
			})
		})

		//生成二维码
		unauthGroupRouter.GET("/qrcode", func(ctx *gin.Context) {
			// qrcode, err := utils.GenerateQrcode(ctx, "https://www.itrident.com.cn", "string")
			qrcode, err := utils.GenerateQrcode(ctx, "https://www.itrident.com.cn", "image")
			if err != nil {
				ctx.String(400, err.Error())
				return
			}

			ctx.String(200, qrcode)
		})
	}

	// ++++++++++++++++++ 前端v1版接口之非权限路由开始 ++++++++++++++++++
	v1FrontendUnauthGroupRouter := r.Group("/api/frontend/v1")
	{
		// 首页
		v1FrontendUnauthGroupRouter.GET("/", v1.IndexController{}.Index)

		// ----------------- 用户路由开始 -----------------
		// 注册
		v1FrontendUnauthGroupRouter.POST("user/register", v1.UserController{}.Register)

		// 登录
		v1FrontendUnauthGroupRouter.POST("user/login", v1.UserController{}.Login)
		// ----------------- 用户路由结束 -----------------

		// ----------------- 横幅路由开始 -----------------
		// // 列表
		// v1FrontendUnauthGroupRouter.GET("banner/list", v1.BannerController{}.List)
		// // 详情
		// v1FrontendUnauthGroupRouter.GET("banner/detail", v1.BannerController{}.Detail)
		// ----------------- 横幅路由结束 -----------------
	}
	// ++++++++++++++++++ 前端v1版接口之非权限路由结束 ++++++++++++++++++

	// +++++++++++++++++++ 前端v1版接口之权限路由开始 +++++++++++++++++++
	v1FrontendAuthGroupRouter := r.Group("/api/frontend/v1")
	v1FrontendAuthGroupRouter.Use(middlewares.FrontendAuthMiddleware)
	{
		// ----------------- 用户路由开始 -----------------
		// 详情
		v1FrontendAuthGroupRouter.GET("user/detail", v1.UserController{}.Detail)
		// ----------------- 用户路由结束 -----------------
	}
	// +++++++++++++++++++ 前端v1版接口之权限路由结束 +++++++++++++++++++

	// +++++++++++++++++++ 前端v2接口之非权限路由开始 +++++++++++++++++++
	v2FrontendUnauthGroupRouter := r.Group("/api/frontend/v2")
	{
		// 首页
		v2FrontendUnauthGroupRouter.GET("/", v2.IndexController{}.Index)

	}
	// +++++++++++++++++++ 前端v2接口之非权限路由结束 +++++++++++++++++++

	// ++++++++++++++++++ 管理v1版接口之非权限路由开始 ++++++++++++++++++
	// v1MgrUnauthGroupRouter := r.Group("/api/mgr/v1")
	// {
	// 	// ----------------- 账户路由开始 -----------------
	// 	// 登录
	// 	v1MgrUnauthGroupRouter.POST("account/login", v1.AccountController{}.Login)
	// 	// ----------------- 账户路由结束 -----------------
	// }
	// ++++++++++++++++++ 管理v1版接口之非权限路由结束 ++++++++++++++++++

	// +++++++++++++++++++ 管理v1版接口之权限路由开始 +++++++++++++++++++
	// v1MgrAuthGroupRouter := r.Group("/api/mgr/v1")
	// v1MgrAuthGroupRouter.Use(middlewares.MgrAuthMiddleware)
	// {
	// 	// ----------------- 横幅路由开始 -----------------
	// 	// 新增
	// 	// v1MgrAuthGroupRouter.POST("banner/add", v1.BannerController{}.Add)

	// 	// ----------------- 横幅路由结束 ------------

	// 	// ----------------- 账户路由开始 ------------
	// 	// 新增
	// 	v1MgrAuthGroupRouter.POST("account/add", v1.AccountController{}.Add)

	// 	// 删除
	// 	v1MgrAuthGroupRouter.POST("account/delete", v1.AccountController{}.Delete)

	// 	// 编辑
	// 	v1MgrAuthGroupRouter.POST("account/edit", v1.AccountController{}.Edit)

	// 	// 编辑状态
	// 	v1MgrAuthGroupRouter.GET("account/editStatus", v1.AccountController{}.EditStatus)

	// 	// 重置密码
	// 	v1MgrAuthGroupRouter.POST("account/resetPassword", v1.AccountController{}.ResetPassword)

	// 	// 修改密码
	// 	v1MgrAuthGroupRouter.POST("account/changePassword", v1.AccountController{}.ChangePassword)

	// 	// 详情
	// 	v1MgrAuthGroupRouter.GET("account/detail", v1.AccountController{}.Detail)

	// 	// 列表
	// 	v1MgrAuthGroupRouter.GET("account/list", v1.AccountController{}.List)

	// 	// ----------------- 账户路由结束 -----------------

	// 	// ----------------- 用户路由开始 -----------------

	// 	// 列表
	// 	v1MgrAuthGroupRouter.GET("user/list", v1.UserController{}.List)

	// 	// 数量
	// 	v1MgrAuthGroupRouter.GET("user/total", v1.UserController{}.Total)
	// 	// ----------------- 用户路由结束 -----------------
	// }
	// +++++++++++++++++++ 管理v1版接口之权限路由结束 +++++++++++++++++++
}
